<?php
class ProjectsController extends Zend_Controller_Action
{
	/*
	 * Default action
	 */
	public function indexAction(){
		//in der indexAction werden hier alle (dem Projekt zugeordneten) Tickets ausgeben
		//Ticket-Objekt erstellen
		$project = new Model_Project();
		$user = new Model_User();
		$this->view->projectarr = $project->getAll()->toArray();
		//Namen der zugehörigen Kunden ebenfalls im Array hinterlegen @TODO: vllt in die getAll()-Funktion verschieben?
		//Wichtig: hier mit dem & arbeiten, da das aktuelle Array verändert werden muss
		foreach($this->view->projectarr as &$project) {
			$project['clients'] = $user->getClientsByProjectID($project['pid']);
		}
	}
	public function newAction(){
		//Wir verwenden hier zunächst das index-Template
		$this->_helper->viewRenderer('index');
		//Neues Ticket erstellen
		$this->view->project = array();
		$this->view->edittype = "new";
		//Kostenarten holen
		$cost = new Model_Cost();
		$this->view->costarr = $cost->getAll()->toArray();
		//Alle User
		$user = new Model_User();
		$this->view->allclients = $user->getUsersByRoleID(Model_Role::ROLE_CLIENT)->toArray();
	}
	public function editAction(){
		//Wir verwenden hier zunächst das index-Template
		$this->_helper->viewRenderer('index');
		//Ticket laden und in das Array schreiben
		$pid = $this->getRequest()->getParam("pid");
		$project = new Model_Project();
		$user = new Model_User();
		$billing = new Model_Billing();
		$this->view->project = $project->getProjectByID($pid);
		$this->view->edittype = "edit";
		$this->view->clients = $user->getClientsByProjectID($pid);
		$this->view->allclients = $user->getUsersByRoleID(Model_Role::ROLE_CLIENT)->toArray();
		$this->view->billing = $billing->getBillinginformationByProjectID($pid);
		//Kostenarten holen
		$cost = new Model_Cost();
		$this->view->costarr = $cost->getAll()->toArray();
	}
	public function saveprojectAction(){
		//Kein Viewrenderer verwenden, da wir hier nur die Rückgabewerte für AJAX ausgeben müssen
		$this->_helper->viewRenderer->setNoRender();
		//Werte aus dem Formular an das Objekt übergeben und in die Datenbank speichern:
		//Ticket-Objekt erstellen
		$project = new Model_Project();
		//Postdaten holen
		$request = new Zend_Controller_Request_Apache404();
		$data = $request->getParams();
		//Ticket in die DB
		$id = $project->createProject($data);
		//Rückgabe für AJAX
		if($id !== false) {
			die("success");
		}
		else {
			die("error");
		}
	}
	public function editprojectAction(){
		//Kein Viewrenderer verwenden, da wir hier nur die Rückgabewerte für AJAX ausgeben müssen
		$this->_helper->viewRenderer->setNoRender();
		//Werte aus dem Formular an das Objekt übergeben und in die Datenbank speichern:
		//Ticket-Objekt erstellen
		$project = new Model_Project();
		//Postdaten holen
		$request = new Zend_Controller_Request_Apache404();
		$data = $request->getParams();
		//Ticket-ID holen
		$pid = $data['pid'];
		//Ticket updaten
		$rows_updated = $project->updateProject($pid, $data);
		//Rückgabe für AJAX
		if(is_numeric($rows_updated)) {
			die("success");
		}
		else {
			die("error");
		}
	}
	public function ajaxgetdefaultcostidAction(){
		//Kein Viewrenderer verwenden, da wir hier nur die Rückgabewerte für AJAX ausgeben müssen
		$this->_helper->viewRenderer->setNoRender();
		//Projekt-ID holen
		$pid = $this->getRequest()->getParam("pid");
		//Projekt-Objekt erstellen
		$project = new Model_Project();
		die($project->getDefaultCostID($pid));
	}
}